package com.ce.common.db.base;

import java.sql.ResultSet;
import java.util.List;

/**
 * 连接数据库的接口
 * @author yangenxiong
 *
 */
public interface DBConnection {

	/**
	 * 执行一句sql语句
	 * @author yangenxiong
	 * @param sql 需要执行的sql语句
	 * @return true 执行成功 false 执行失败
	 */
	boolean execute(String sql) throws Exception;
	
	/**
	 * 执行若干句sql语句, 这些语句存在同一个事务中
	 * @author yangenxiong
	 * @param sql 需要执行的sql语句的集合
	 * @return true 全部语句执行成功 false 全部执行失败
	 */
	boolean execute(List<String> sql) ;
	
	/**
	 * 执行最基本的查询
	 * @author yangenxiong
	 */
	ResultSet query(String sql) throws Exception;
	
	/**
	 * 查询参数表名的外键关系
	 * @author yangenxiong
	 */
	ResultSet queryRelations(String tableName) throws Exception;
	
	/**
	 * 查询所有的表和视图, 返回ResultSet
	 * @author yangenxiong
	 */
	ResultSet queryTables(String[] types) throws Exception;
	
	/**
	 * 关闭ResultSet的方法
	 * @param 需要关闭的ResultSet
	 */
	boolean closeResultSet(ResultSet rs);
	
	/**
	 * 关闭连接
	 * @author yangenxiong
	 * @return
	 */
	boolean closeConnection();
	
}
